package com.tutos.dao;

import java.util.List;

import com.tutos.model.CalificacionesEstudiante;
import com.tutos.model.Estudiante;
import com.tutos.model.Monitor;

public class CalificacionesEstudianteDAO extends BaseDAO<CalificacionesEstudiante> {

	@Override
	public List<CalificacionesEstudiante> getAll() {
		return search("getAllCalificaciones");
	}
	
	public int getCalificacionGlobal(Monitor monitor){
		QParameter<String, Long> parameter = new QParameter<String, Long>("id", monitor.getId());
		List<CalificacionesEstudiante> calificaciones = search("getCalificacionesMonitor", parameter);
		int total = 0;
		for(CalificacionesEstudiante cal : calificaciones)
			total+=cal.getCalificacion();
		return calificaciones.size() != 0 ? total/calificaciones.size(): 0;
	}
	
	public CalificacionesEstudiante getCalificacionDada(Estudiante estudiante, Monitor monitor){
		QParameter<String, Long> parameter1 = new QParameter<String, Long>("idEs", estudiante.getId());
		QParameter<String, Long> parameter2 = new QParameter<String, Long>("idMo", monitor.getId());
		List<CalificacionesEstudiante> calificaciones = search("getCalificacionEstudiante", parameter1, parameter2);
		return calificaciones.size() != 0 ? calificaciones.get(0) : null;
	}
	
	public List<CalificacionesEstudiante> getCalificacionesEstudiante(Estudiante estudiante){
		QParameter<String, Long> parameter = new QParameter<String, Long>("id", estudiante.getId());
		return  search("getCalificacionesEstudiante", parameter);
	}
	
	public List<CalificacionesEstudiante> getCalificacionesMonitor(Monitor monitor){
		QParameter<String, Long> parameter = new QParameter<String, Long>("id", monitor.getId());
		return  search("getCalificacionesMonitor", parameter);
	}

}
